/**
 * 初始化
 */
$(function () {
    // 表单验证和提交处理
    $("#scoreForm").validate({
        submitHandler: function (form) {
            saveScore();
        }
    });
    $('.fixed-table-pagination').show();
    // 初始化表格
    $('#scoreTb').bootstrapTable({
        method: 'GET',
        url: '/webapi/score/list', // 初始加载地址，这里假设是用于加载所有成绩数据的接口
        striped: true,
        cache: false,
        pagination: true,
        sortable: false,
        sidePagination: "server", // 后端分页
        pageNumber: 1,
        pageSize: 3,
        pageList: [3, 6, 10, 20, 100],
        queryParams: function (params) {
            return {
                pageSize: params.limit,
                pageNum: params.offset / params.limit + 1
            };
        },
        columns: [{
            checkbox: true,
        }, {
            field: 'id',
            title: '学生ID'
        }, {
            field: 'studentNo',
            title: '学生学号'
        }, {
            field: 'cno',
            title: '课程号'
        }, {
            field: 'score',
            title: '课程成绩'
        },{
            field: 'handle',
            title: '操作',
            formatter: operateFormatter // 自定义操作列的格式化函数
        }]
    });
    $('#allScore').hide();
    // 点击按钮刷新表格
    $('#allScore').click(function () {
        $('#scoreTb').bootstrapTable('refresh');
    });
});
/**
 * 处理后端返回的操作结果
 * @param {Object} result 后端返回的结果对象，包含code和msg字段
 */
function handleResponse(result) {
    if (result.code === 1 || result.length > 0) {
        console.log('操作成功');
    } else {
        console.error('操作失败');
    }
}
/**
 * 查询学生信息，并更新Bootstrap表格显示
 */
function searchScore() {
    var cno = $("#searchInput").val().trim(); // 获取输入课程号
    if (cno !== "") {
        $.ajax({
            url: "/webapi/score/search", // 发送查询请求的 URL
            method: "GET",
            data: {
                cno: cno // 修改此处为正确的参数名，与后端接口的@RequestParam对应
            }
        }).done(function (response) {
            handleResponse(response);
            if (response.length > 0) {
                // 更新Bootstrap表格数据
                $('#scoreTb').bootstrapTable('load', {
                    total: response.length,
                    rows: response
                });
                $('#searchModal').modal('hide'); // 关闭模态框
                $('#allScore').show();
                $('.fixed-table-pagination').hide(); // 隐藏分页
            } else {
                // 如果没有查询到结果，显示空数据
                $('#scoreTb').bootstrapTable('removeAll');
                $('#searchModal').modal('hide'); // 关闭模态框
                $('#allScore').show();  //显示查询所有按钮
                $('.fixed-table-pagination').hide();    //隐藏分页，显示所有相关学生信息
                alert("没有找到相关课程成绩!!!");
            }
        }).fail(function (xhr, textStatus, errorThrown) {
            // 处理请求失败的情况
            console.error("Error:", textStatus, errorThrown);
            alert("查询失败，请稍后重试或联系管理员！");
        });
    }
}
/**
 * 保存学生信息（更新）
 */
function saveScore() {
    var id = $('#id').val();
    var score = $('#score').val();
    var result = confirm("确定保存修改信息吗？"); // 弹出确认提示框
    if (result) {
        $.ajax({
            url: "/webapi/score/update", // 使用学生ID来构建更新请求的URL
            method: "PUT",
            data: {
                id: id,
                score: score  // 只提交需要更新的成绩字段
            }
        }).done(function (response) {
            handleResponse(response);
            $('#myModal').modal('hide'); // 关闭模态框
        }).fail(function () {
            alert("保存失败，请稍后重试！");
        });
    }
}
// 自定义操作列的格式化函数
function operateFormatter(value, row, index) {
    // 返回操作按钮的HTML代码
    return [
        '<button class="btn btn-sm btn-primary mr-2" onclick="editScore(' + row.id + ')">修改成绩</button>'
        ].join('');
}
/**
 * 更新学生信息的事先查询
 * @param id
 */
function editScore(id) {
    $('#myModal').modal('show');    //打开模态框
    // $('#editId').show(); // 显示ID字段
    $.ajax({
        url: "/webapi/score/get/" + id,
        method: "GET"
    }).done(function (rs) {
        $('#id').val(rs.id);
        // $('#studentNo').val(rs.studentNo);
        // $('#cno').val(rs.cno);
        $('#score').val(rs.score);
    });
    // 在模态框关闭时，重新加载表格数据
    $('#myModal').on('hidden.bs.modal', function () {
        $('#scoreTb').bootstrapTable('refresh');
        // $('#editId').hide(); // 隐藏ID字段
    });
}
$(function () {
    $('#allScore').on('click', function () {
        $(this).hide(); // 隐藏查询所有按钮
    });
});
